package br.com.vendaext.gerencial.apresentacao;

import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

import br.com.vendaext.gerencial.entidades.Entidade;
import br.com.vendaext.gerencial.integracao.DAOGenerico;

public abstract class GenericHome<T extends Entidade> {

	private DAOGenerico daoPrincipal;	

	private T entidade;
	
	boolean estadoCadastrando = false;
	boolean estadoEditando = false;
	boolean estadoPesquisando = false; 	

	public List<T> listar() {
		return daoPrincipal.listar();

	}

	public void salvar() {
		daoPrincipal.salvar(entidade);
	}

	public void inserir() {
		daoPrincipal.inserir(entidade);

	}

	public DAOGenerico getDaoPrincipal() {
		return daoPrincipal;
	}

	public void setDaoPrincipal(DAOGenerico daoPrincipal) {
		this.daoPrincipal = daoPrincipal;
	}

	public T getEntidade() {
		 return entidade;
	}

	public void setEntidade(T entidade) {
		this.entidade = entidade;
	}

	public boolean isEstadoCadastrando() {
		return estadoCadastrando;
	}

	public void setEstadoCadastrando(boolean estadoCadastrando) {
		this.estadoCadastrando = estadoCadastrando;
	}

	public boolean isEstadoEditando() {
		return estadoEditando;
	}

	public void setEstadoEditando(boolean estadoEditando) {
		this.estadoEditando = estadoEditando;
	}

	public boolean isEstadoPesquisando() {
		return estadoPesquisando;
	}

	public void setEstadoPesquisando(boolean estadoPesquisando) {
		this.estadoPesquisando = estadoPesquisando;
	}

	public void iniciarCadastrar(){
		setEstadoCadastrando(true);
	}
	public void iniciarEditar(){
		setEstadoEditando(true);
	}
	public void iniciarPesquisar(){
		setEstadoPesquisando(true);
	}
	public void cancelar(){
		setEstadoCadastrando(false);
		setEstadoEditando(false);
		setEstadoPesquisando(false);
	}
}
